home *** CD-ROM | disk | FTP | other *** search
- overlay "tex2"
- #define EXTERN extern
- #include "texd.h"
-
-
- #ifdef STAT
- zshoweqtb ( n )
- halfword n ;
- {r_showeqtb
- if ( n < 1 )
- printchar ( 63 ) ;
- else if ( n < 3526 )
- {
- sprintcs ( n ) ;
- printchar ( 61 ) ;
- printcmdchr ( eqtb [ n ] .hh.b0 , eqtb [ n ] .hh .v.RH ) ;
- if ( eqtb [ n ] .hh.b0 >= 110 )
- {
- printchar ( 58 ) ;
- showtokenlis ( mem [(long) eqtb [ n ] .hh .v.RH ] .hh .v.RH , 0 , 32 ) ;
- }
- }
- else if ( n < 4056 )
- if ( n < 3544 )
- {
- printskippar ( n - 3526 ) ;
- printchar ( 61 ) ;
- if ( n < 3541 )
- printspec ( eqtb [ n ] .hh .v.RH , 262 ) ;
- else printspec ( eqtb [ n ] .hh .v.RH , 205 ) ;
- }
- else if ( n < 3800 )
- {
- printesc ( 260 ) ;
- printint ( n - 3544 ) ;
- printchar ( 61 ) ;
- printspec ( eqtb [ n ] .hh .v.RH , 262 ) ;
- }
- else {
- printesc ( 261 ) ;
- printint ( n - 3800 ) ;
- printchar ( 61 ) ;
- printspec ( eqtb [ n ] .hh .v.RH , 205 ) ;
- }
- else if ( n < 5267 )
- if ( n == 4056 )
- {
- printesc ( 273 ) ;
- printchar ( 61 ) ;
- if ( eqtb [ 4056 ] .hh .v.RH == 0 )
- printchar ( 48 ) ;
- else printint ( mem [(long) eqtb [ 4056 ] .hh .v.RH ] .hh .v.LH ) ;
- }
- else if ( n < 4066 )
- {
- printcmdchr ( 71 , n ) ;
- printchar ( 61 ) ;
- if ( eqtb [ n ] .hh .v.RH != 0 )
- showtokenlis ( mem [(long) eqtb [ n ] .hh .v.RH ] .hh .v.RH , 0 , 32 ) ;
- }
- else if ( n < 4322 )
- {
- printesc ( 272 ) ;
- printint ( n - 4066 ) ;
- printchar ( 61 ) ;
- if ( eqtb [ n ] .hh .v.RH != 0 )
- showtokenlis ( mem [(long) eqtb [ n ] .hh .v.RH ] .hh .v.RH , 0 , 32 ) ;
- }
- else if ( n < 4578 )
- {
- printesc ( 274 ) ;
- printint ( n - 4322 ) ;
- printchar ( 61 ) ;
- if ( eqtb [ n ] .hh .v.RH == 0 )
- print ( 275 ) ;
- else {
- depththresho = 0 ;
- breadthmax = 1 ;
- shownodelist ( eqtb [ n ] .hh .v.RH ) ;
- }
- }
- else if ( n < 4627 )
- {
- if ( n == 4578 )
- print ( 276 ) ;
- else if ( n < 4595 )
- {
- printesc ( 277 ) ;
- printint ( n - 4579 ) ;
- }
- else if ( n < 4611 )
- {
- printesc ( 278 ) ;
- printint ( n - 4595 ) ;
- }
- else {
- printesc ( 279 ) ;
- printint ( n - 4611 ) ;
- }
- printchar ( 61 ) ;
- printesc ( hash [ 3268 + eqtb [ n ] .hh .v.RH ] .v.RH ) ;
- }
- else if ( n < 5139 )
- {
- if ( n < 4755 )
- {
- printesc ( 280 ) ;
- printint ( n - 4627 ) ;
- }
- else if ( n < 4883 )
- {
- printesc ( 281 ) ;
- printint ( n - 4755 ) ;
- }
- else if ( n < 5011 )
- {
- printesc ( 282 ) ;
- printint ( n - 4883 ) ;
- }
- else {
- printesc ( 283 ) ;
- printint ( n - 5011 ) ;
- }
- printchar ( 61 ) ;
- printint ( eqtb [ n ] .hh .v.RH ) ;
- }
- else {
- printesc ( 284 ) ;
- printint ( n - 5139 ) ;
- printchar ( 61 ) ;
- printint ( eqtb [ n ] .hh .v.RH ) ;
- }
- else if ( n < 5701 )
- {
- if ( n < 5317 )
- printparam ( n - 5267 ) ;
- else if ( n < 5573 )
- {
- printesc ( 336 ) ;
- printint ( n - 5317 ) ;
- }
- else {
- printesc ( 337 ) ;
- printint ( n - 5573 ) ;
- }
- printchar ( 61 ) ;
- printint ( eqtb [ n ] .cint ) ;
- }
- else if ( n <= 5976 )
- {
- if ( n < 5721 )
- printlengthp ( n - 5701 ) ;
- else {
- printesc ( 359 ) ;
- printint ( n - 5721 ) ;
- }
- printchar ( 61 ) ;
- printscaled ( eqtb [ n ] .cint ) ;
- print ( 262 ) ;
- }
- else printchar ( 63 ) ;
- }
- #endif /* STAT */
- halfword zidlookup ( j , l )
- integer j , l ;
- {/* 40 */ register halfword Result; r_idlookup
- integer h ;
- halfword p ;
- halfword k ;
- h = buffer [ j ] ;
- for ( k = j + 1 ; k <= j + l - 1 ; k ++ )
- {
- h = h + h + buffer [ k ] ;
- while ( h >= 2551 ) h = h - 2551 ;
- }
- p = h + 258 ;
- while ( true ) {
- if ( hash [ p ] .v.RH > 0 )
- if ( ( strstart [ hash [ p ] .v.RH + 1 ] - strstart [ hash [ p ] .v.RH ] )
- == l )
- if ( streqbuf ( hash [ p ] .v.RH , j ) )
- goto lab40 ;
- if ( hash [ p ] .v.LH == 0 )
- {
- if ( nonewcontrol )
- p = 3525 ;
- else {
- if ( hash [ p ] .v.RH > 0 )
- {
- do { if ( ( hashused == 258 ) )
- overflow ( 362 , 3000 ) ;
- decr ( hashused ) ;
- } while ( ! ( hash [ hashused ] .v.RH == 0 ) ) ;
- hash [ p ] .v.LH = hashused ;
- p = hashused ;
- }
- {
- if ( poolptr + l > poolsize )
- overflow ( 128 , poolsize - initpoolptr ) ;
- }
- for ( k = j ; k <= j + l - 1 ; k ++ )
- {
- strpool [ poolptr ] = buffer [ k ] ;
- incr ( poolptr ) ;
- }
- hash [ p ] .v.RH = makestring () ;
-
- #ifdef STAT
- incr ( cscount ) ;
- #endif /* STAT */
- }
- goto lab40 ;
- }
- p = hash [ p ] .v.LH ;
- }
- lab40: Result = p ;
- return(Result) ;
- }
-
- #ifdef INITEX
- zprimitive ( s , c , o )
- strnumber s ;
- quarterword c ;
- halfword o ;
- {r_primitive
- poolpointer k ;
- smallnumber j ;
- smallnumber l ;
- if ( s < 128 )
- curval = s + 129 ;
- else {
- k = strstart [ s ] ;
- l = strstart [ s + 1 ] - k ;
- for ( j = 0 ; j <= l - 1 ; j ++ )
- buffer [ j ] = strpool [ k + j ] ;
- curval = idlookup ( 0 , l ) ;
- {
- decr ( strptr ) ;
- poolptr = strstart [ strptr ] ;
- }
- hash [ curval ] .v.RH = s ;
- }
- eqtb [ curval ] .hh.b1 = 1 ;
- eqtb [ curval ] .hh.b0 = c ;
- eqtb [ curval ] .hh .v.RH = o ;
- }
- #endif /* INITEX */
- znewsavelevel ( c )
- groupcode c ;
- {r_newsavelevel
- if ( saveptr > maxsavestack )
- {
- maxsavestack = saveptr ;
- if ( maxsavestack > savesize - 6 )
- overflow ( 399 , savesize ) ;
- }
- savestack [ saveptr ] .hh.b0 = 3 ;
- savestack [ saveptr ] .hh.b1 = curgroup ;
- savestack [ saveptr ] .hh .v.RH = curboundary ;
- if ( curlevel == 255 )
- overflow ( 400 , 255 ) ;
- curboundary = saveptr ;
- incr ( curlevel ) ;
- incr ( saveptr ) ;
- curgroup = c ;
- }
- zeqdestroy ( w )
- memoryword w ;
- {r_eqdestroy
- halfword q ;
- switch ( w .hh.b0 )
- {case 110 :
- case 111 :
- case 112 :
- case 113 :
- deletetokenr ( w .hh .v.RH ) ;
- break ;
- case 116 :
- deletegluere ( w .hh .v.RH ) ;
- break ;
- case 117 :
- {
- q = w .hh .v.RH ;
- if ( q != 0 )
- freenode ( q , mem [(long) q ] .hh .v.LH + mem [(long) q ] .hh .v.LH + 1 ) ;
- }
- break ;
- case 118 :
- flushnodelis ( w .hh .v.RH ) ;
- break ;
- default :
- ;
- break ;
- }
- }
- zeqsave ( p , l )
- halfword p ;
- quarterword l ;
- {r_eqsave
- if ( saveptr > maxsavestack )
- {
- maxsavestack = saveptr ;
- if ( maxsavestack > savesize - 6 )
- overflow ( 399 , savesize ) ;
- }
- if ( l == 0 )
- savestack [ saveptr ] .hh.b0 = 1 ;
- else {
- savestack [ saveptr ] = eqtb [ p ] ;
- incr ( saveptr ) ;
- savestack [ saveptr ] .hh.b0 = 0 ;
- }
- savestack [ saveptr ] .hh.b1 = l ;
- savestack [ saveptr ] .hh .v.RH = p ;
- incr ( saveptr ) ;
- }
- zeqdefine ( p , t , e )
- halfword p ;
- quarterword t ;
- halfword e ;
- {r_eqdefine
- if ( eqtb [ p ] .hh.b1 == curlevel )
- eqdestroy ( eqtb [ p ] ) ;
- else if ( curlevel > 1 )
- eqsave ( p , eqtb [ p ] .hh.b1 ) ;
- eqtb [ p ] .hh.b1 = curlevel ;
- eqtb [ p ] .hh.b0 = t ;
- eqtb [ p ] .hh .v.RH = e ;
- }
- zeqworddefine ( p , w )
- halfword p ;
- integer w ;
- {r_eqworddefine
- if ( xeqlevel [ p ] != curlevel )
- {
- eqsave ( p , xeqlevel [ p ] ) ;
- xeqlevel [ p ] = curlevel ;
- }
- eqtb [ p ] .cint = w ;
- }
- zgeqdefine ( p , t , e )
- halfword p ;
- quarterword t ;
- halfword e ;
- {r_geqdefine
- eqdestroy ( eqtb [ p ] ) ;
- eqtb [ p ] .hh.b1 = 1 ;
- eqtb [ p ] .hh.b0 = t ;
- eqtb [ p ] .hh .v.RH = e ;
- }
- zgeqworddefin ( p , w )
- halfword p ;
- integer w ;
- {r_geqworddefin
- eqtb [ p ] .cint = w ;
- xeqlevel [ p ] = 1 ;
- }
- zsaveforafter ( t )
- halfword t ;
- {r_saveforafter
- if ( saveptr > maxsavestack )
- {
- maxsavestack = saveptr ;
- if ( maxsavestack > savesize - 6 )
- overflow ( 399 , savesize ) ;
- }
- savestack [ saveptr ] .hh.b0 = 2 ;
- savestack [ saveptr ] .hh.b1 = 0 ;
- savestack [ saveptr ] .hh .v.RH = t ;
- incr ( saveptr ) ;
- }
-
- #ifdef STAT
- zrestoretrace ( p , s )
- halfword p ;
- strnumber s ;
- {r_restoretrace
- begindiagnos () ;
- printchar ( 123 ) ;
- print ( s ) ;
- printchar ( 32 ) ;
- showeqtb ( p ) ;
- printchar ( 125 ) ;
- enddiagnosti ( false ) ;
- }
- #endif /* STAT */
- unsave () { /* 30 */ r_unsave
- halfword p ;
- quarterword l ;
- halfword t ;
- if ( curlevel > 1 )
- {
- decr ( curlevel ) ;
- while ( true ) {
- decr ( saveptr ) ;
- if ( savestack [ saveptr ] .hh.b0 == 3 )
- goto lab30 ;
- p = savestack [ saveptr ] .hh .v.RH ;
- if ( savestack [ saveptr ] .hh.b0 == 2 )
- {
- t = curtok ;
- curtok = p ;
- backinput () ;
- curtok = t ;
- }
- else {
- if ( savestack [ saveptr ] .hh.b0 == 0 )
- {
- l = savestack [ saveptr ] .hh.b1 ;
- decr ( saveptr ) ;
- }
- else savestack [ saveptr ] = eqtb [ 3525 ] ;
- if ( p < 5267 )
- if ( eqtb [ p ] .hh.b1 == 1 )
- {
- eqdestroy ( savestack [ saveptr ] ) ;
-
- #ifdef STAT
- if ( eqtb [ 5304 ] .cint > 0 )
- restoretrace ( p , 402 ) ;
- #endif /* STAT */
- }
- else {
- eqdestroy ( eqtb [ p ] ) ;
- eqtb [ p ] = savestack [ saveptr ] ;
-
- #ifdef STAT
- if ( eqtb [ 5304 ] .cint > 0 )
- restoretrace ( p , 403 ) ;
- #endif /* STAT */
- }
- else if ( xeqlevel [ p ] != 1 )
- {
- eqtb [ p ] = savestack [ saveptr ] ;
- xeqlevel [ p ] = l ;
-
- #ifdef STAT
- if ( eqtb [ 5304 ] .cint > 0 )
- restoretrace ( p , 403 ) ;
- #endif /* STAT */
- }
- else {
-
- #ifdef STAT
- if ( eqtb [ 5304 ] .cint > 0 )
- restoretrace ( p , 402 ) ;
- #endif /* STAT */
- }
- }
- }
- lab30: curgroup = savestack [ saveptr ] .hh.b1 ;
- curboundary = savestack [ saveptr ] .hh .v.RH ;
- }
- else confusion ( 401 ) ;
- }
- preparemag () { r_preparemag
- if ( ( magset > 0 ) && ( eqtb [ 5284 ] .cint != magset ) )
- {
- {
- if ( interaction == 3 )
- wakeuptermin () ;
- printnl ( 133 ) ;
- print ( 405 ) ;
- }
- printint ( eqtb [ 5284 ] .cint ) ;
- print ( 406 ) ;
- printnl ( 407 ) ;
- {
- helpptr = 2 ;
- helpline [ 1 ] = 408 ;
- helpline [ 0 ] = 409 ;
- }
- interror ( magset ) ;
- geqworddefin ( 5284 , magset ) ;
- }
- if ( ( eqtb [ 5284 ] .cint <= 0 ) || ( eqtb [ 5284 ] .cint > 32768 ) )
- {
- {
- if ( interaction == 3 )
- wakeuptermin () ;
- printnl ( 133 ) ;
- print ( 410 ) ;
- }
- {
- helpptr = 1 ;
- helpline [ 0 ] = 411 ;
- }
- interror ( eqtb [ 5284 ] .cint ) ;
- geqworddefin ( 5284 , 1000 ) ;
- }
- magset = eqtb [ 5284 ] .cint ;
- }
- ztokenshow ( p )
- halfword p ;
- {r_tokenshow
- if ( p != 0 )
- showtokenlis ( mem [(long) p ] .hh .v.RH , 0 , 1000 ) ;
- }
- printmeaning () { r_printmeaning
- printcmdchr ( curcmd , curchr ) ;
- if ( curcmd >= 110 )
- {
- printchar ( 58 ) ;
- println () ;
- tokenshow ( curchr ) ;
- }
- else if ( curcmd == 109 )
- {
- printchar ( 58 ) ;
- println () ;
- tokenshow ( curmark [ curchr ] ) ;
- }
- }
- showcurcmdch () { r_showcurcmdch
- begindiagnos () ;
- printnl ( 123 ) ;
- if ( curlist .modefield != shownmode )
- {
- printmode ( curlist .modefield ) ;
- print ( 426 ) ;
- shownmode = curlist .modefield ;
- }
- printcmdchr ( curcmd , curchr ) ;
- printchar ( 125 ) ;
- enddiagnosti ( false ) ;
- }
- showcontext () { /* 30 */ r_showcontext
- quarterword oldsetting ;
- integer i ;
- integer j ;
- integer l ;
- integer m ;
- integer n ;
- integer p ;
- integer q ;
- baseptr = inputptr ;
- inputstack [ baseptr ] = curinput ;
- while ( true ) {
- curinput = inputstack [ baseptr ] ;
- if ( ( baseptr == inputptr ) || ( curinput .statefield != 0 ) || (
- curinput .indexfield != 3 ) || ( curinput .locfield != 0 ) )
- {
- tally = 0 ;
- oldsetting = selector ;
- if ( curinput .statefield != 0 )
- {
- if ( curinput .namefield <= 17 )
- if ( ( curinput .namefield == 0 ) )
- if ( baseptr == 0 )
- printnl ( 432 ) ;
- else printnl ( 433 ) ;
- else {
- printnl ( 434 ) ;
- if ( curinput .namefield == 17 )
- printchar ( 42 ) ;
- else printint ( curinput .namefield - 1 ) ;
- printchar ( 62 ) ;
- }
- else {
- printnl ( 435 ) ;
- printint ( line ) ;
- }
- printchar ( 32 ) ;
- {
- l = tally ;
- tally = 0 ;
- selector = 20 ;
- trickcount = 1000000 ;
- }
- if ( buffer [ curinput .limitfield ] == eqtb [ 5315 ] .cint )
- j = curinput .limitfield ;
- else j = curinput .limitfield + 1 ;
- if ( j > 0 )
- for ( i = curinput .startfield ; i <= j - 1 ; i ++ )
- {
- if ( i == curinput .locfield )
- {
- firstcount = tally ;
- trickcount = tally + 1 + errorline - halferrorlin ;
- if ( trickcount < errorline )
- trickcount = errorline ;
- }
- print ( buffer [ i ] ) ;
- }
- }
- else {
- switch ( curinput .indexfield )
- {case 0 :
- printnl ( 436 ) ;
- break ;
- case 1 :
- case 2 :
- printnl ( 437 ) ;
- break ;
- case 3 :
- if ( curinput .locfield == 0 )
- printnl ( 438 ) ;
- else printnl ( 439 ) ;
- break ;
- case 4 :
- printnl ( 440 ) ;
- break ;
- case 5 :
- {
- println () ;
- printcs ( curinput .namefield ) ;
- }
- break ;
- case 6 :
- printnl ( 441 ) ;
- break ;
- case 7 :
- printnl ( 442 ) ;
- break ;
- case 8 :
- printnl ( 443 ) ;
- break ;
- case 9 :
- printnl ( 444 ) ;
- break ;
- case 10 :
- printnl ( 445 ) ;
- break ;
- case 11 :
- printnl ( 446 ) ;
- break ;
- case 12 :
- printnl ( 447 ) ;
- break ;
- case 13 :
- printnl ( 448 ) ;
- break ;
- case 14 :
- printnl ( 449 ) ;
- break ;
- case 15 :
- printnl ( 450 ) ;
- break ;
- default :
- printnl ( 63 ) ;
- break ;
- }
- {
- l = tally ;
- tally = 0 ;
- selector = 20 ;
- trickcount = 1000000 ;
- }
- if ( curinput .indexfield < 5 )
- showtokenlis ( curinput .startfield , curinput .locfield , 100000 ) ;
- else showtokenlis ( mem [(long) curinput .startfield ] .hh .v.RH , curinput
- .locfield , 100000 ) ;
- }
- selector = oldsetting ;
- if ( trickcount == 1000000 )
- {
- firstcount = tally ;
- trickcount = tally + 1 + errorline - halferrorlin ;
- if ( trickcount < errorline )
- trickcount = errorline ;
- }
- if ( tally < trickcount )
- m = tally - firstcount ;
- else m = trickcount - firstcount ;
- if ( l + firstcount <= halferrorlin )
- {
- p = 0 ;
- n = l + firstcount ;
- }
- else {
- print ( 146 ) ;
- p = l + firstcount - halferrorlin + 3 ;
- n = halferrorlin ;
- }
- for ( q = p ; q <= firstcount - 1 ; q ++ )
- printchar ( trickbuf [ q % errorline ] ) ;
- println () ;
- for ( q = 1 ; q <= n ; q ++ )
- printchar ( 32 ) ;
- if ( m + n <= errorline )
- p = firstcount + m ;
- else p = firstcount + ( errorline - n - 3 ) ;
- for ( q = firstcount ; q <= p - 1 ; q ++ )
- printchar ( trickbuf [ q % errorline ] ) ;
- if ( m + n > errorline )
- print ( 146 ) ;
- }
- if ( ( curinput .statefield != 0 ) )
- if ( ( curinput .namefield > 17 ) || ( baseptr == 0 ) )
- goto lab30 ;
- decr ( baseptr ) ;
- }
- lab30: curinput = inputstack [ inputptr ] ;
- }
- zbegintokenli ( p , t )
- halfword p ;
- quarterword t ;
- {r_begintokenli
- {
- if ( inputptr > maxinstack )
- {
- maxinstack = inputptr ;
- if ( inputptr == stacksize )
- overflow ( 451 , stacksize ) ;
- }
- inputstack [ inputptr ] = curinput ;
- incr ( inputptr ) ;
- }
- curinput .statefield = 0 ;
- curinput .startfield = p ;
- curinput .indexfield = t ;
- if ( t >= 5 )
- {
- incr ( mem [(long) p ] .hh .v.LH ) ;
- if ( t == 5 )
- curinput .limitfield = paramptr ;
- else {
- curinput .locfield = mem [(long) p ] .hh .v.RH ;
- if ( eqtb [ 5297 ] .cint > 1 )
- {
- begindiagnos () ;
- printnl ( 206 ) ;
- switch ( t )
- {case 14 :
- printesc ( 219 ) ;
- break ;
- case 15 :
- printesc ( 452 ) ;
- break ;
- default :
- printcmdchr ( 71 , t + 4051 ) ;
- break ;
- }
- print ( 414 ) ;
- tokenshow ( p ) ;
- enddiagnosti ( false ) ;
- }
- }
- }
- else curinput .locfield = p ;
- }
- endtokenlist () { r_endtokenlist
- if ( curinput .indexfield >= 3 )
- {
- if ( curinput .indexfield <= 4 )
- flushlist ( curinput .startfield ) ;
- else {
- deletetokenr ( curinput .startfield ) ;
- if ( curinput .indexfield == 5 )
- while ( paramptr > curinput .limitfield ) {
- decr ( paramptr ) ;
- flushlist ( paramstack [ paramptr ] ) ;
- }
- }
- }
- else if ( curinput .indexfield == 1 )
- alignstate = 0 ;
- {
- decr ( inputptr ) ;
- curinput = inputstack [ inputptr ] ;
- }
- {
- if ( interrupt != 0 )
- pauseforinst () ;
- }
- }
- backinput () { r_backinput
- halfword p ;
- while ( ( curinput .statefield == 0 ) && ( curinput .locfield == 0 ) )
- endtokenlist () ;
- p = getavail () ;
- mem [(long) p ] .hh .v.LH = curtok ;
- if ( curtok < 768 )
- if ( curtok < 512 )
- decr ( alignstate ) ;
- else incr ( alignstate ) ;
- {
- if ( inputptr > maxinstack )
- {
- maxinstack = inputptr ;
- if ( inputptr == stacksize )
- overflow ( 451 , stacksize ) ;
- }
- inputstack [ inputptr ] = curinput ;
- incr ( inputptr ) ;
- }
- curinput .statefield = 0 ;
- curinput .startfield = p ;
- curinput .indexfield = 3 ;
- curinput .locfield = p ;
- }
- backerror () { r_backerror
- OKtointerrup = false ;
- backinput () ;
- OKtointerrup = true ;
- error () ;
- }
- inserror () { r_inserror
- OKtointerrup = false ;
- backinput () ;
- curinput .indexfield = 4 ;
- OKtointerrup = true ;
- error () ;
- }
- beginfilerea () { r_beginfilerea
- if ( inopen == maxinopen )
- overflow ( 453 , maxinopen ) ;
- if ( first == bufsize )
- overflow ( 454 , bufsize ) ;
- incr ( inopen ) ;
- {
- if ( inputptr > maxinstack )
- {
- maxinstack = inputptr ;
- if ( inputptr == stacksize )
- overflow ( 451 , stacksize ) ;
- }
- inputstack [ inputptr ] = curinput ;
- incr ( inputptr ) ;
- }
- curinput .indexfield = inopen ;
- linestack [ curinput .indexfield ] = line ;
- curinput .startfield = first ;
- curinput .statefield = 1 ;
- curinput .namefield = 0 ;
- }
- endfilereadi () { r_endfilereadi
- first = curinput .startfield ;
- line = linestack [ curinput .indexfield ] ;
- if ( curinput .namefield > 17 )
- aclose ( inputfile [ curinput .indexfield ] ) ;
- {
- decr ( inputptr ) ;
- curinput = inputstack [ inputptr ] ;
- }
- decr ( inopen ) ;
- }
- clearforerro () { r_clearforerro
- while ( ( curinput .statefield != 0 ) && ( curinput .namefield == 0 ) && (
- inputptr > 0 ) && ( curinput .locfield > curinput .limitfield ) )
- endfilereadi () ;
- println () ;
- cleartermina () ;
- }
- checkouterva () { r_checkouterva
- halfword p ;
- halfword q ;
- if ( scannerstatu != 0 )
- {
- deletionsall = false ;
- if ( curcs != 0 )
- {
- if ( ( curinput .statefield == 0 ) || ( curinput .namefield < 1 ) || (
- curinput .namefield > 17 ) )
- {
- p = getavail () ;
- mem [(long) p ] .hh .v.LH = 4096 + curcs ;
- begintokenli ( p , 3 ) ;
- }
- curcmd = 10 ;
- curchr = 32 ;
- }
- if ( scannerstatu > 1 )
- {
- runaway () ;
- if ( curcs == 0 )
- {
- if ( interaction == 3 )
- wakeuptermin () ;
- printnl ( 133 ) ;
- print ( 462 ) ;
- }
- else {
- curcs = 0 ;
- {
- if ( interaction == 3 )
- wakeuptermin () ;
- printnl ( 133 ) ;
- print ( 463 ) ;
- }
- }
- print ( 464 ) ;
- p = getavail () ;
- switch ( scannerstatu )
- {case 2 :
- {
- print ( 428 ) ;
- mem [(long) p ] .hh .v.LH = 637 ;
- }
- break ;
- case 3 :
- {
- print ( 470 ) ;
- mem [(long) p ] .hh .v.LH = partoken ;
- longstate = 112 ;
- }
- break ;
- case 4 :
- {
- print ( 430 ) ;
- mem [(long) p ] .hh .v.LH = 637 ;
- q = p ;
- p = getavail () ;
- mem [(long) p ] .hh .v.RH = q ;
- mem [(long) p ] .hh .v.LH = 7355 ;
- alignstate = - 1000000 ;
- }
- break ;
- case 5 :
- {
- print ( 431 ) ;
- mem [(long) p ] .hh .v.LH = 637 ;
- }
- break ;
- }
- begintokenli ( p , 4 ) ;
- print ( 465 ) ;
- sprintcs ( warningindex ) ;
- {
- helpptr = 4 ;
- helpline [ 3 ] = 466 ;
- helpline [ 2 ] = 467 ;
- helpline [ 1 ] = 468 ;
- helpline [ 0 ] = 469 ;
- }
- error () ;
- }
- else {
- {
- if ( interaction == 3 )
- wakeuptermin () ;
- printnl ( 133 ) ;
- print ( 456 ) ;
- }
- printcmdchr ( 104 , curif ) ;
- print ( 457 ) ;
- printint ( skipline ) ;
- {
- helpptr = 3 ;
- helpline [ 2 ] = 458 ;
- helpline [ 1 ] = 459 ;
- helpline [ 0 ] = 460 ;
- }
- if ( curcs != 0 )
- curcs = 0 ;
- else helpline [ 2 ] = 461 ;
- curtok = 7358 ;
- inserror () ;
- }
- deletionsall = true ;
- }
- }
- getnext () { /* 20 25 21 26 40 10 */ r_getnext
- integer k ;
- halfword t ;
- quarterword cat ;
- lab20: curcs = 0 ;
- if ( curinput .statefield != 0 )
- {
- lab25: if ( curinput .locfield <= curinput .limitfield )
- {
- curchr = buffer [ curinput .locfield ] ;
- incr ( curinput .locfield ) ;
- lab21: curcmd = eqtb [ 4627 + curchr ] .hh .v.RH ;
- switch ( curinput .statefield + curcmd )
- {case 10 :
- case 26 :
- case 42 :
- case 27 :
- case 43 :
- goto lab25 ;
- break ;
- case 1 :
- case 17 :
- case 33 :
- {
- if ( curinput .locfield > curinput .limitfield )
- curcs = 257 ;
- else {
- lab26: k = curinput .locfield ;
- curchr = buffer [ k ] ;
- cat = eqtb [ 4627 + curchr ] .hh .v.RH ;
- incr ( k ) ;
- if ( cat == 11 )
- curinput .statefield = 17 ;
- else if ( cat == 10 )
- curinput .statefield = 17 ;
- else curinput .statefield = 1 ;
- if ( ( cat == 11 ) && ( k <= curinput .limitfield ) )
- {
- do { curchr = buffer [ k ] ;
- cat = eqtb [ 4627 + curchr ] .hh .v.RH ;
- incr ( k ) ;
- } while ( ! ( ( cat != 11 ) || ( k > curinput .limitfield ) ) )
- ;
- {
- if ( buffer [ k ] == curchr )
- if ( cat == 7 )
- if ( k < curinput .limitfield )
- {
- curchr = buffer [ k + 1 ] ;
- if ( curchr < 64 )
- buffer [ k - 1 ] = curchr + 64 ;
- else buffer [ k - 1 ] = curchr - 64 ;
- curinput .limitfield = curinput .limitfield - 2 ;
- first = first - 2 ;
- while ( k <= curinput .limitfield ) {
- buffer [ k ] = buffer [ k + 2 ] ;
- incr ( k ) ;
- }
- goto lab26 ;
- }
- }
- if ( cat != 11 )
- decr ( k ) ;
- if ( k > curinput .locfield + 1 )
- {
- curcs = idlookup ( curinput .locfield , k - curinput .locfield
- ) ;
- curinput .locfield = k ;
- goto lab40 ;
- }
- }
- else {
- if ( buffer [ k ] == curchr )
- if ( cat == 7 )
- if ( k < curinput .limitfield )
- {
- curchr = buffer [ k + 1 ] ;
- if ( curchr < 64 )
- buffer [ k - 1 ] = curchr + 64 ;
- else buffer [ k - 1 ] = curchr - 64 ;
- curinput .limitfield = curinput .limitfield - 2 ;
- first = first - 2 ;
- while ( k <= curinput .limitfield ) {
- buffer [ k ] = buffer [ k + 2 ] ;
- incr ( k ) ;
- }
- goto lab26 ;
- }
- }
- curcs = 129 + buffer [ curinput .locfield ] ;
- incr ( curinput .locfield ) ;
- }
- lab40: curcmd = eqtb [ curcs ] .hh.b0 ;
- curchr = eqtb [ curcs ] .hh .v.RH ;
- if ( curcmd >= 112 )
- checkouterva () ;
- }
- break ;
- case 14 :
- case 30 :
- case 46 :
- {
- curcs = curchr + 1 ;
- curcmd = eqtb [ curcs ] .hh.b0 ;
- curchr = eqtb [ curcs ] .hh .v.RH ;
- curinput .statefield = 1 ;
- if ( curcmd >= 112 )
- checkouterva () ;
- }
- break ;
- case 8 :
- case 24 :
- case 40 :
- {
- if ( ( curchr == buffer [ curinput .locfield ] ) && ( curinput
- .locfield < curinput .limitfield ) )
- {
- if ( buffer [ curinput .locfield + 1 ] < 64 )
- curchr = buffer [ curinput .locfield + 1 ] + 64 ;
- else curchr = buffer [ curinput .locfield + 1 ] - 64 ;
- curinput .locfield = curinput .locfield + 2 ;
- goto lab21 ;
- }
- curinput .statefield = 1 ;
- }
- break ;
- case 16 :
- case 32 :
- case 48 :
- {
- {
- if ( interaction == 3 )
- wakeuptermin () ;
- printnl ( 133 ) ;
- print ( 471 ) ;
- }
- {
- helpptr = 2 ;
- helpline [ 1 ] = 472 ;
- helpline [ 0 ] = 473 ;
- }
- deletionsall = false ;
- error () ;
- deletionsall = true ;
- goto lab20 ;
- }
- break ;
- case 11 :
- {
- curinput .statefield = 17 ;
- curchr = 32 ;
- }
- break ;
- case 6 :
- {
- curinput .locfield = curinput .limitfield + 1 ;
- curcmd = 10 ;
- curchr = 32 ;
- }
- break ;
- case 22 :
- case 15 :
- case 31 :
- case 47 :
- {
- curinput .locfield = curinput .limitfield + 1 ;
- goto lab25 ;
- }
- break ;
- case 38 :
- {
- curinput .locfield = curinput .limitfield + 1 ;
- curcs = parloc ;
- curcmd = eqtb [ curcs ] .hh.b0 ;
- curchr = eqtb [ curcs ] .hh .v.RH ;
- if ( curcmd >= 112 )
- checkouterva () ;
- }
- break ;
- case 2 :
- incr ( alignstate ) ;
- break ;
- case 18 :
- case 34 :
- {
- curinput .statefield = 1 ;
- incr ( alignstate ) ;
- }
- break ;
- case 3 :
- decr ( alignstate ) ;
- break ;
- case 19 :
- case 35 :
- {
- curinput .statefield = 1 ;
- decr ( alignstate ) ;
- }
- break ;
- case 20 :
- case 21 :
- case 23 :
- case 25 :
- case 28 :
- case 29 :
- case 36 :
- case 37 :
- case 39 :
- case 41 :
- case 44 :
- case 45 :
- curinput .statefield = 1 ;
- break ;
- default :
-
- break ;
- }
- }
- else {
- curinput .statefield = 33 ;
- if ( curinput .namefield > 17 )
- {
- incr ( line ) ;
- first = curinput .startfield ;
- if ( ! forceeof )
- {
- if ( inputln ( inputfile [ curinput .indexfield ] , true ) )
- firmupthelin () ;
- else forceeof = true ;
- }
- if ( forceeof )
- {
- printchar ( 41 ) ;
- forceeof = false ;
- termflush ( output ) ;
- endfilereadi () ;
- checkouterva () ;
- goto lab20 ;
- }
- if ( ( eqtb [ 5315 ] .cint < 0 ) || ( eqtb [ 5315 ] .cint > 127 ) )
- decr ( curinput .limitfield ) ;
- else buffer [ curinput .limitfield ] = eqtb [ 5315 ] .cint ;
- first = curinput .limitfield + 1 ;
- curinput .locfield = curinput .startfield ;
- }
- else {
- if ( ! ( curinput .namefield == 0 ) )
- {
- curcmd = 0 ;
- curchr = 0 ;
- return ;
- }
- if ( inputptr > 0 )
- {
- endfilereadi () ;
- goto lab20 ;
- }
- if ( selector < 18 )
- openlogfile () ;
- if ( interaction > 1 )
- {
- if ( ( eqtb [ 5315 ] .cint < 0 ) || ( eqtb [ 5315 ] .cint > 127 ) )
- incr ( curinput .limitfield ) ;
- if ( curinput .limitfield == curinput .startfield )
- printnl ( 474 ) ;
- println () ;
- first = curinput .startfield ;
- {
- wakeuptermin () ;
- print ( 42 ) ;
- terminput () ;
- }
- curinput .limitfield = last ;
- if ( ( eqtb [ 5315 ] .cint < 0 ) || ( eqtb [ 5315 ] .cint > 127 ) )
- decr ( curinput .limitfield ) ;
- else buffer [ curinput .limitfield ] = eqtb [ 5315 ] .cint ;
- first = curinput .limitfield + 1 ;
- curinput .locfield = curinput .startfield ;
- }
- else fatalerror ( 475 ) ;
- }
- {
- if ( interrupt != 0 )
- pauseforinst () ;
- }
- goto lab25 ;
- }
- }
- else if ( curinput .locfield != 0 )
- {
- t = mem [(long) curinput .locfield ] .hh .v.LH ;
- curinput .locfield = mem [(long) curinput .locfield ] .hh .v.RH ;
- if ( t >= 4096 )
- {
- curcs = t - 4096 ;
- curcmd = eqtb [ curcs ] .hh.b0 ;
- curchr = eqtb [ curcs ] .hh .v.RH ;
- if ( curcmd >= 112 )
- if ( curcmd == 115 )
- {
- curcs = mem [(long) curinput .locfield ] .hh .v.LH - 4096 ;
- curinput .locfield = 0 ;
- curcmd = eqtb [ curcs ] .hh.b0 ;
- curchr = eqtb [ curcs ] .hh .v.RH ;
- if ( curcmd > 99 )
- {
- curcmd = 0 ;
- curchr = 257 ;
- }
- }
- else checkouterva () ;
- }
- else {
- curcmd = t / 256 ;
- curchr = t % 256 ;
- switch ( curcmd )
- {case 1 :
- incr ( alignstate ) ;
- break ;
- case 2 :
- decr ( alignstate ) ;
- break ;
- case 5 :
- {
- begintokenli ( paramstack [ curinput .limitfield + curchr - 1 ] , 0
- ) ;
- goto lab20 ;
- }
- break ;
- default :
-
- break ;
- }
- }
- }
- else {
- endtokenlist () ;
- goto lab20 ;
- }
- if ( curcmd <= 5 )
- if ( curcmd >= 4 )
- if ( alignstate == 0 )
- {
- if ( scannerstatu == 4 )
- fatalerror ( 762 ) ;
- curcmd = mem [(long) curalign + 5 ] .hh .v.LH ;
- mem [(long) curalign + 5 ] .hh .v.LH = curchr ;
- if ( curcmd == 63 )
- begintokenli ( memtop - 10 , 2 ) ;
- else begintokenli ( mem [(long) curalign + 2 ] .cint , 2 ) ;
- alignstate = 1000000 ;
- goto lab20 ;
- }
- }
- firmupthelin () { r_firmupthelin
- integer k ;
- curinput .limitfield = last ;
- if ( eqtb [ 5295 ] .cint > 0 )
- if ( interaction > 1 )
- {
- wakeuptermin () ;
- println () ;
- if ( curinput .startfield < curinput .limitfield )
- for ( k = curinput .startfield ; k <= curinput .limitfield - 1 ; k ++ )
- print ( buffer [ k ] ) ;
- first = curinput .limitfield ;
- {
- wakeuptermin () ;
- print ( 476 ) ;
- terminput () ;
- }
- if ( last > first )
- {
- for ( k = first ; k <= last - 1 ; k ++ )
- buffer [ k + curinput .startfield - first ] = buffer [ k ] ;
- curinput .limitfield = curinput .startfield + last - first ;
- }
- }
- }
- gettoken () { r_gettoken
- nonewcontrol = false ;
- getnext () ;
- nonewcontrol = true ;
- if ( curcs == 0 )
- curtok = ( curcmd * 256 ) + curchr ;
- else curtok = 4096 + curcs ;
- }
- macrocall () { /* 10 22 30 31 40 */ r_macrocall
- halfword r ;
- halfword p ;
- halfword q ;
- halfword s ;
- halfword t ;
- halfword u, v ;
- halfword rbraceptr ;
- smallnumber n ;
- halfword unbalance ;
- halfword m ;
- halfword refcount ;
- smallnumber savescanners ;
- halfword savewarningi ;
- ASCIIcode matchchr ;
- savescanners = scannerstatu ;
- savewarningi = warningindex ;
- warningindex = curcs ;
- refcount = curchr ;
- r = mem [(long) refcount ] .hh .v.RH ;
- n = 0 ;
- if ( eqtb [ 5297 ] .cint > 0 )
- {
- begindiagnos () ;
- println () ;
- printcs ( warningindex ) ;
- tokenshow ( refcount ) ;
- enddiagnosti ( false ) ;
- }
- if ( mem [(long) r ] .hh .v.LH != 3584 )
- {
- scannerstatu = 3 ;
- unbalance = 0 ;
- longstate = eqtb [ curcs ] .hh.b0 ;
- if ( longstate >= 112 )
- longstate = longstate - 2 ;
- do { if ( ( mem [(long) r ] .hh .v.LH > 3455 ) || ( mem [(long) r ] .hh .v.LH < 3328 )
- )
- s = 0 ;
- else {
- matchchr = mem [(long) r ] .hh .v.LH - 3328 ;
- s = mem [(long) r ] .hh .v.RH ;
- r = s ;
- p = memtop - 3 ;
- mem [(long) p ] .hh .v.RH = 0 ;
- m = 0 ;
- }
- lab22: gettoken () ;
- if ( curtok == mem [(long) r ] .hh .v.LH )
- {
- r = mem [(long) r ] .hh .v.RH ;
- if ( ( mem [(long) r ] .hh .v.LH >= 3328 ) && ( mem [(long) r ] .hh .v.LH <= 3584
- ) )
- {
- if ( curtok < 512 )
- decr ( alignstate ) ;
- goto lab40 ;
- }
- else goto lab22 ;
- }
- if ( s != r )
- if ( s == 0 )
- {
- {
- if ( interaction == 3 )
- wakeuptermin () ;
- printnl ( 133 ) ;
- print ( 508 ) ;
- }
- sprintcs ( warningindex ) ;
- print ( 509 ) ;
- {
- helpptr = 4 ;
- helpline [ 3 ] = 510 ;
- helpline [ 2 ] = 511 ;
- helpline [ 1 ] = 512 ;
- helpline [ 0 ] = 513 ;
- }
- error () ;
- goto lab10 ;
- }
- else {
- t = s ;
- do { {
- q = getavail () ;
- mem [(long) p ] .hh .v.RH = q ;
- mem [(long) q ] .hh .v.LH = mem [(long) t ] .hh .v.LH ;
- p = q ;
- }
- incr ( m ) ;
- u = mem [(long) t ] .hh .v.RH ;
- v = s ;
- while ( true ) {
- if ( u == r )
- if ( curtok != mem [(long) v ] .hh .v.LH )
- goto lab30 ;
- else {
- r = mem [(long) v ] .hh .v.RH ;
- goto lab22 ;
- }
- if ( mem [(long) u ] .hh .v.LH != mem [(long) v ] .hh .v.LH )
- goto lab30 ;
- u = mem [(long) u ] .hh .v.RH ;
- v = mem [(long) v ] .hh .v.RH ;
- }
- lab30: t = mem [(long) t ] .hh .v.RH ;
- } while ( ! ( t == r ) ) ;
- r = s ;
- }
- if ( curtok == partoken )
- if ( longstate != 111 )
- {
- if ( longstate == 110 )
- {
- runaway () ;
- {
- if ( interaction == 3 )
- wakeuptermin () ;
- printnl ( 133 ) ;
- print ( 503 ) ;
- }
- sprintcs ( warningindex ) ;
- print ( 504 ) ;
- {
- helpptr = 3 ;
- helpline [ 2 ] = 505 ;
- helpline [ 1 ] = 506 ;
- helpline [ 0 ] = 507 ;
- }
- backerror () ;
- }
- pstack [ n ] = mem [(long) memtop - 3 ] .hh .v.RH ;
- alignstate = alignstate - unbalance ;
- for ( m = 0 ; m <= n ; m ++ )
- flushlist ( pstack [ m ] ) ;
- goto lab10 ;
- }
- if ( curtok < 768 )
- if ( curtok < 512 )
- {
- unbalance = 1 ;
- while ( true ) {
- {
- {
- q = avail ;
- if ( q == 0 )
- q = getavail () ;
- else {
- avail = mem [(long) q ] .hh .v.RH ;
- mem [(long) q ] .hh .v.RH = 0 ;
-
- #ifdef STAT
- incr ( dynused ) ;
- #endif /* STAT */
- }
- }
- mem [(long) p ] .hh .v.RH = q ;
- mem [(long) q ] .hh .v.LH = curtok ;
- p = q ;
- }
- gettoken () ;
- if ( curtok == partoken )
- if ( longstate != 111 )
- {
- if ( longstate == 110 )
- {
- runaway () ;
- {
- if ( interaction == 3 )
- wakeuptermin () ;
- printnl ( 133 ) ;
- print ( 503 ) ;
- }
- sprintcs ( warningindex ) ;
- print ( 504 ) ;
- {
- helpptr = 3 ;
- helpline [ 2 ] = 505 ;
- helpline [ 1 ] = 506 ;
- helpline [ 0 ] = 507 ;
- }
- backerror () ;
- }
- pstack [ n ] = mem [(long) memtop - 3 ] .hh .v.RH ;
- alignstate = alignstate - unbalance ;
- for ( m = 0 ; m <= n ; m ++ )
- flushlist ( pstack [ m ] ) ;
- goto lab10 ;
- }
- if ( curtok < 768 )
- if ( curtok < 512 )
- incr ( unbalance ) ;
- else {
- decr ( unbalance ) ;
- if ( unbalance == 0 )
- goto lab31 ;
- }
- }
- lab31: rbraceptr = p ;
- {
- q = getavail () ;
- mem [(long) p ] .hh .v.RH = q ;
- mem [(long) q ] .hh .v.LH = curtok ;
- p = q ;
- }
- }
- else {
- backinput () ;
- {
- if ( interaction == 3 )
- wakeuptermin () ;
- printnl ( 133 ) ;
- print ( 495 ) ;
- }
- sprintcs ( warningindex ) ;
- print ( 496 ) ;
- {
- helpptr = 6 ;
- helpline [ 5 ] = 497 ;
- helpline [ 4 ] = 498 ;
- helpline [ 3 ] = 499 ;
- helpline [ 2 ] = 500 ;
- helpline [ 1 ] = 501 ;
- helpline [ 0 ] = 502 ;
- }
- incr ( alignstate ) ;
- longstate = 110 ;
- curtok = partoken ;
- inserror () ;
- }
- else {
- if ( curtok == 2592 )
- if ( mem [(long) r ] .hh .v.LH <= 3584 )
- if ( mem [(long) r ] .hh .v.LH >= 3328 )
- goto lab22 ;
- {
- q = getavail () ;
- mem [(long) p ] .hh .v.RH = q ;
- mem [(long) q ] .hh .v.LH = curtok ;
- p = q ;
- }
- }
- incr ( m ) ;
- if ( mem [(long) r ] .hh .v.LH > 3584 )
- goto lab22 ;
- if ( mem [(long) r ] .hh .v.LH < 3328 )
- goto lab22 ;
- lab40: if ( s != 0 )
- {
- if ( ( m == 1 ) && ( mem [(long) p ] .hh .v.LH < 768 ) && ( p != memtop - 3
- ) )
- {
- mem [(long) rbraceptr ] .hh .v.RH = 0 ;
- {
- mem [(long) p ] .hh .v.RH = avail ;
- avail = p ;
-
- #ifdef STAT
- decr ( dynused ) ;
- #endif /* STAT */
- }
- p = mem [(long) memtop - 3 ] .hh .v.RH ;
- pstack [ n ] = mem [(long) p ] .hh .v.RH ;
- {
- mem [(long) p ] .hh .v.RH = avail ;
- avail = p ;
-
- #ifdef STAT
- decr ( dynused ) ;
- #endif /* STAT */
- }
- }
- else pstack [ n ] = mem [(long) memtop - 3 ] .hh .v.RH ;
- incr ( n ) ;
- if ( eqtb [ 5297 ] .cint > 0 )
- {
- begindiagnos () ;
- printnl ( matchchr ) ;
- printint ( n ) ;
- print ( 514 ) ;
- showtokenlis ( pstack [ n - 1 ] , 0 , 1000 ) ;
- enddiagnosti ( false ) ;
- }
- }
- } while ( ! ( mem [(long) r ] .hh .v.LH == 3584 ) ) ;
- }
- while ( ( curinput .statefield == 0 ) && ( curinput .locfield == 0 ) )
- endtokenlist () ;
- begintokenli ( refcount , 5 ) ;
- curinput .namefield = warningindex ;
- curinput .locfield = mem [(long) r ] .hh .v.RH ;
- if ( n > 0 )
- {
- if ( paramptr + n > maxparamstac )
- {
- maxparamstac = paramptr + n ;
- if ( maxparamstac > paramsize )
- overflow ( 494 , paramsize ) ;
- }
- for ( m = 0 ; m <= n - 1 ; m ++ )
- paramstack [ paramptr + m ] = pstack [ m ] ;
- paramptr = paramptr + n ;
- }
- lab10: scannerstatu = savescanners ;
- warningindex = savewarningi ;
- }
- insertrelax () { r_insertrelax
- curtok = 4096 + curcs ;
- backinput () ;
- curtok = 7361 ;
- backinput () ;
- curinput .indexfield = 4 ;
- }
- expand () { r_expand
- halfword t ;
- halfword p, q, r ;
- integer j ;
- integer cvbackup ;
- smallnumber cvlbackup, radixbackup, cobackup ;
- halfword backupbackup ;
- smallnumber savescanners ;
- cvbackup = curval ;
- cvlbackup = curvallevel ;
- radixbackup = radix ;
- cobackup = curorder ;
- backupbackup = mem [(long) memtop - 13 ] .hh .v.RH ;
- if ( curcmd < 110 )
- {
- if ( eqtb [ 5303 ] .cint > 1 )
- showcurcmdch () ;
- switch ( curcmd )
- {case 109 :
- {
- if ( curmark [ curchr ] != 0 )
- begintokenli ( curmark [ curchr ] , 14 ) ;
- }
- break ;
- case 101 :
- {
- gettoken () ;
- t = curtok ;
- gettoken () ;
- if ( curcmd > 99 )
- expand () ;
- else backinput () ;
- curtok = t ;
- backinput () ;
- }
- break ;
- case 102 :
- {
- savescanners = scannerstatu ;
- scannerstatu = 0 ;
- gettoken () ;
- scannerstatu = savescanners ;
- t = curtok ;
- backinput () ;
- if ( t >= 4096 )
- {
- p = getavail () ;
- mem [(long) p ] .hh .v.LH = 7363 ;
- mem [(long) p ] .hh .v.RH = curinput .locfield ;
- curinput .startfield = p ;
- curinput .locfield = p ;
- }
- }
- break ;
- case 106 :
- {
- r = getavail () ;
- p = r ;
- do { getxtoken () ;
- if ( curcs == 0 )
- {
- q = getavail () ;
- mem [(long) p ] .hh .v.RH = q ;
- mem [(long) q ] .hh .v.LH = curtok ;
- p = q ;
- }
- } while ( ! ( curcs != 0 ) ) ;
- if ( curcmd != 66 )
- {
- {
- if ( interaction == 3 )
- wakeuptermin () ;
- printnl ( 133 ) ;
- print ( 483 ) ;
- }
- printesc ( 364 ) ;
- print ( 484 ) ;
- {
- helpptr = 2 ;
- helpline [ 1 ] = 485 ;
- helpline [ 0 ] = 486 ;
- }
- backerror () ;
- }
- j = first ;
- p = mem [(long) r ] .hh .v.RH ;
- while ( p != 0 ) {
- if ( j >= maxbufstack )
- {
- maxbufstack = j + 1 ;
- if ( maxbufstack == bufsize )
- overflow ( 454 , bufsize ) ;
- }
- buffer [ j ] = mem [(long) p ] .hh .v.LH % 256 ;
- incr ( j ) ;
- p = mem [(long) p ] .hh .v.RH ;
- }
- if ( j > first + 1 )
- {
- nonewcontrol = false ;
- curcs = idlookup ( first , j - first ) ;
- nonewcontrol = true ;
- }
- else if ( j == first )
- curcs = 257 ;
- else curcs = 129 + buffer [ first ] ;
- flushlist ( r ) ;
- if ( eqtb [ curcs ] .hh.b0 == 100 )
- {
- eqdefine ( curcs , 0 , 256 ) ;
- }
- curtok = curcs + 4096 ;
- backinput () ;
- }
- break ;
- case 107 :
- convtoks () ;
- break ;
- case 108 :
- insthetoks () ;
- break ;
- case 104 :
- conditional () ;
- break ;
- case 105 :
- if ( curchr > iflimit )
- if ( iflimit == 1 )
- insertrelax () ;
- else {
- {
- if ( interaction == 3 )
- wakeuptermin () ;
- printnl ( 133 ) ;
- print ( 633 ) ;
- }
- printcmdchr ( 105 , curchr ) ;
- {
- helpptr = 1 ;
- helpline [ 0 ] = 634 ;
- }
- error () ;
- }
- else {
- while ( curchr != 2 ) passtext () ;
- {
- p = condptr ;
- ifline = mem [(long) p + 1 ] .cint ;
- curif = mem [(long) p ] .hh.b1 ;
- iflimit = mem [(long) p ] .hh.b0 ;
- condptr = mem [(long) p ] .hh .v.RH ;
- freenode ( p , 2 ) ;
- }
- }
- break ;
- case 103 :
- if ( curchr > 0 )
- forceeof = true ;
- else if ( nameinprogre )
- insertrelax () ;
- else startinput () ;
- break ;
- default :
- {
- {
- if ( interaction == 3 )
- wakeuptermin () ;
- printnl ( 133 ) ;
- print ( 477 ) ;
- }
- {
- helpptr = 5 ;
- helpline [ 4 ] = 478 ;
- helpline [ 3 ] = 479 ;
- helpline [ 2 ] = 480 ;
- helpline [ 1 ] = 481 ;
- helpline [ 0 ] = 482 ;
- }
- error () ;
- }
- break ;
- }
- }
- else if ( curcmd < 114 )
- macrocall () ;
- else {
- curtok = 7360 ;
- backinput () ;
- }
- curval = cvbackup ;
- curvallevel = cvlbackup ;
- radix = radixbackup ;
- curorder = cobackup ;
- mem [(long) memtop - 13 ] .hh .v.RH = backupbackup ;
- }
- getxtoken () { /* 20 30 */ r_getxtoken
- lab20: getnext () ;
- if ( curcmd <= 99 )
- goto lab30 ;
- if ( curcmd >= 110 )
- if ( curcmd < 114 )
- macrocall () ;
- else {
- curcs = 3264 ;
- curcmd = 9 ;
- goto lab30 ;
- }
- else expand () ;
- goto lab20 ;
- lab30: if ( curcs == 0 )
- curtok = ( curcmd * 256 ) + curchr ;
- else curtok = 4096 + curcs ;
- }
- xtoken () { r_xtoken
- while ( curcmd > 99 ) {
- expand () ;
- getnext () ;
- }
- if ( curcs == 0 )
- curtok = ( curcmd * 256 ) + curchr ;
- else curtok = 4096 + curcs ;
- }
- scanleftbrac () { r_scanleftbrac
- do { getxtoken () ;
- } while ( ! ( ( curcmd != 10 ) && ( curcmd != 0 ) ) ) ;
- if ( curcmd != 1 )
- {
- {
- if ( interaction == 3 )
- wakeuptermin () ;
- printnl ( 133 ) ;
- print ( 515 ) ;
- }
- {
- helpptr = 4 ;
- helpline [ 3 ] = 516 ;
- helpline [ 2 ] = 517 ;
- helpline [ 1 ] = 518 ;
- helpline [ 0 ] = 519 ;
- }
- backerror () ;
- curtok = 379 ;
- curcmd = 1 ;
- curchr = 123 ;
- incr ( alignstate ) ;
- }
- }
- scanoptional () { r_scanoptional
- do { getxtoken () ;
- } while ( ! ( curcmd != 10 ) ) ;
- if ( curtok != 3133 )
- backinput () ;
- }
- boolean zscankeyword ( s )
- strnumber s ;
- {/* 10 */ register boolean Result; r_scankeyword
- halfword p ;
- halfword q ;
- poolpointer k ;
- p = memtop - 13 ;
- mem [(long) p ] .hh .v.RH = 0 ;
- k = strstart [ s ] ;
- while ( k < strstart [ s + 1 ] ) {
- getxtoken () ;
- if ( ( curcs == 0 ) && ( ( curchr == strpool [ k ] ) || ( curchr ==
- strpool [ k ] - 32 ) ) )
- {
- {
- q = getavail () ;
- mem [(long) p ] .hh .v.RH = q ;
- mem [(long) q ] .hh .v.LH = curtok ;
- p = q ;
- }
- incr ( k ) ;
- }
- else if ( ( curcmd != 10 ) || ( p != memtop - 13 ) )
- {
- backinput () ;
- if ( p != memtop - 13 )
- begintokenli ( mem [(long) memtop - 13 ] .hh .v.RH , 3 ) ;
- Result = false ;
- return(Result) ;
- }
- }
- flushlist ( mem [(long) memtop - 13 ] .hh .v.RH ) ;
- Result = true ;
- return(Result) ;
- }
- muerror () { r_muerror
- {
- if ( interaction == 3 )
- wakeuptermin () ;
- printnl ( 133 ) ;
- print ( 520 ) ;
- }
- {
- helpptr = 1 ;
- helpline [ 0 ] = 521 ;
- }
- error () ;
- }
- scansevenbit () { r_scansevenbit
- scanint () ;
- if ( ( curval < 0 ) || ( curval > 127 ) )
- {
- {
- if ( interaction == 3 )
- wakeuptermin () ;
- printnl ( 133 ) ;
- print ( 543 ) ;
- }
- {
- helpptr = 2 ;
- helpline [ 1 ] = 544 ;
- helpline [ 0 ] = 545 ;
- }
- interror ( curval ) ;
- curval = 0 ;
- }
- }
- scaneightbit () { r_scaneightbit
- scanint () ;
- if ( ( curval < 0 ) || ( curval > 255 ) )
- {
- {
- if ( interaction == 3 )
- wakeuptermin () ;
- printnl ( 133 ) ;
- print ( 546 ) ;
- }
- {
- helpptr = 2 ;
- helpline [ 1 ] = 547 ;
- helpline [ 0 ] = 545 ;
- }
- interror ( curval ) ;
- curval = 0 ;
- }
- }
- scanfourbiti () { r_scanfourbiti
- scanint () ;
- if ( ( curval < 0 ) || ( curval > 15 ) )
- {
- {
- if ( interaction == 3 )
- wakeuptermin () ;
- printnl ( 133 ) ;
- print ( 548 ) ;
- }
- {
- helpptr = 2 ;
- helpline [ 1 ] = 549 ;
- helpline [ 0 ] = 545 ;
- }
- interror ( curval ) ;
- curval = 0 ;
- }
- }
-